import unittest

from htmltestreport import HTMLTestReport

from config import local_path
from script.test01_login import TestLogin
from script.test02_login_para import TestLoginPara
from script.test03_login_three import TestLoginThree
from script.test04_login_para_three import TestLoginParaThree


class Runner:
    def suite_test(self):
        # 实例化测试套件
        suite = unittest.TestSuite()
        # 添加测试用例--测试某一个测试类中的某一个方法
        suite.addTest(TestLogin("test01_login_success"))
        # 添加测试用例--测试某一个测试类中的所有方法
        suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(TestLogin))
        suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(TestLoginPara))
        suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(TestLoginThree))
        suite.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(TestLoginParaThree))
        # # 运行测试用例
        # # 实例化运行器
        # runner = unittest.TextTestRunner()
        # # 运行
        # runner.run(suite)
        # 生成HTML测试报告
        report = HTMLTestReport(f"{local_path}/report/html_report.html", title="接口测试报告", description="传智博客登录接口测试报告")
        # 运行
        report.run(suite)


    def loader_test(self):
        # 运行测试用例
        # 创建测试加载器
        loader = unittest.TestLoader()
        # 获取测试用例
        suite = loader.discover("script", pattern="test*.py")
        # # 运行测试用例
        # runner = unittest.TextTestRunner()
        # # 运行
        # runner.run(suite)
        # 生成HTML测试报告
        report = HTMLTestReport(f"{local_path}/report/html_report.html", title="接口测试报告",
                                description="传智博客登录接口测试报告")
        # 运行
        report.run(suite)

if __name__ == '__main__':
    runner001 = Runner()
    # runner001.suite_test()
    runner001.loader_test()
